package com.ai.dao.edu.cms.user;

import java.util.List;
import java.util.Map;

import com.ai.model.edu.cms.backoperator.BackendOperator;
import com.ai.model.edu.cms.backoperator.dto.BackendOperatorDTO;
import com.ai.model.edu.cms.backoperator.vo.BackendOperatorVO;

public interface BackendOperatorMapper {
    /**
     * Description ： 根据用户名查找用户
     * 
     * nyj
     * 
     * @param userName
     * @return
     * @since
     *
     */
    public BackendOperatorVO findBackendOperatorByName(String userName);
    
    /**
     * Description ： 根据dto(用户名+运营商id)查询用户信息<br>
     * 
     * yangwb
     * 
     * @param backendOperatorDTO
     * @return
     * @since
     *
     */
    public BackendOperatorVO findBackendOperatorByDTO(BackendOperatorDTO backendOperatorDTO);

    /**
     * Description ： 登录成功后更新用户信息
     * 
     * nyj
     * 
     * @param backendOperatorDTO
     * @return
     * @since
     *
     */
    public int updateBackendOperatorAfterLogin(BackendOperatorDTO backendOperatorDTO);

    /**
     * Description ：根据DTO查询用户分页信息<br>
     * 
     * yangwb
     * 
     * @param backendOperatorDTO
     * @return
     * @since
     * 
     */
    public List<BackendOperatorVO> findBackendOperatorVOsByDTO(BackendOperatorDTO backendOperatorDTO);

    /**
     * Description ： 根据DTO统计用户数量<br>
     * 
     * yangwb
     * 
     * @param backendOperatorDTO
     * @return
     * @since
     * 
     */
    public int countBackendOperatorVOsByDTO(BackendOperatorDTO backendOperatorDTO);

    /**
     * Description ： 根据DTO查询用户信息 不分页 新增or更新 做重名校验<br>
     * 
     * yangwb
     * 
     * @param backendOperatorDTO
     * @return
     * @since
     * 
     */
    public List<BackendOperatorVO> findBackendOperatorVOs(BackendOperatorDTO backendOperatorDTO);

    /**
     * Description ： 新增用户信息<br>
     * 
     * yangwb
     * 
     * @param backendOperator
     * @return
     * @since
     *
     */
    public int addBackendOperator(BackendOperator backendOperator);

    /**
     * Description ： 更新用户信息<br>
     * 
     * yangwb
     * 
     * @param backendOperator
     * @return
     * @since
     * 
     */
    public int updateBackendOperator(BackendOperator backendOperator);

    /**
     * Description ： 根据主键id查询用户对象<br>
     * 
     * yangwb
     * 
     * @param id
     * @return
     * @since
     * 
     */
    public BackendOperatorVO findBackendOperatorVOById(Long id);

    /**
     * Description ：根据dto更新用户状态<br>
     * 
     * yangwb
     * 
     * @param backendOperatorDTO
     * @return
     * @since
     * 
     */
    public int updateBackendUserStatusByDTO(BackendOperatorDTO backendOperatorDTO);

    /**
     * Description ： 根据dto删除用户<br>
     * 
     * yangwb
     * 
     * @param backendOperatorDTO
     * @return
     * @since
     * 
     */
    public int deleteBackOperatorByDTO(BackendOperatorDTO backendOperatorDTO);

    /**
     * Description  ： 根据ID批量查询用户信息<br>
     * 
     * wumc
     * @param idList
     * @return
     * @since
     *
     */
    public List<BackendOperatorVO> findBackendOperatorListByIdList(List<Long> idList);

    /**
     * Description  ： 根据创建人姓名模糊查询数据<br>
     * 
     * wumc
     * @param term
     * @return
     * @since
     *
     */
    public List<BackendOperatorVO> findOperatorListByName(Map<String, Object> params);
}
